#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

int unval;
int gval = 100;

int main()
{
    printf("code addr: %p\n", main);
    printf("gval addr: %p\n", &gval);
    printf("unval addr: %p\n", &unval);

    int *mem = (int*)malloc(10*sizeof(int));
    printf("heap add: %p\n", mem);
    free(mem);


    int a,b,c;
    printf("stack addr : %p\n", &a);
    printf("stack addr : %p\n", &b);
    printf("stack addr : %p\n", &c);





//    char *isrunning=getenv("ISRUNNING");
//    printf("ISRUNNING=%s\n", isrunning);
//    if(isrunning == NULL)
//    {
//        while(1)
//        {
//            printf("当前进程首次启动!\n");
//            sleep(1);
//        }
//    }
//    else
//    {
//        printf("当前进程已经运行了,不要在启动了!\n");
//    }
//
    //printf("%s\n",getenv("USER"));
    //printf("%s\n",getenv("PWD"));

   // pid_t id = fork();
   // if(id == 0)
   // {
   //     while(1)
   //     {
   //         printf("我是子进程,pid : %d,ppid : %d,gval = %d ,&gval = %p\n",getpid(),getppid(),gval,&gval);
   //         gval++;
   //         sleep(1);
   //     }
   // }
   // else 
   // {
   //     while(1)
   //     {
   //         printf("我是父进程,pid : %d,ppid : %d,gval = %d ,&gval = %p\n",getpid(),getppid(),gval,&gval);
   //         sleep(1);
   //     }

   // }
}
